#ifndef MYQCAMERA_H
#define MYQCAMERA_H

#include <QObject>
#include <QCameraViewfinder>
#include <QCameraInfo>
#include <QtWidgets>
#include <QCameraExposure>
#include <QCameraViewfinderSettings>

#include "DebugPrint/myDebugPrint.h"
#include "ENUM/enum.h"

class MyQcamera : public QObject
{
    Q_OBJECT
public:
    explicit MyQcamera(QObject *parent = nullptr);

    //返回视图部件方便上层进行处理。
    QCameraViewfinder *RViewfinder();
public slots:
    bool switchCamera(const QString& cameraInfo);   //切换摄像头方法
    void cameraStat(QCamera::State state);
    void flushCamera();
    bool setExposure(int ValueEV = 0, SetAorMKind mode = SetAorMKind::Auto);
private:
    //存储当前连接到当前系统的所有摄像头
    QList<QCameraInfo> cameras;
    //Qt中用于显示摄像头捕获到的图像的类。它是一个用于实时预览摄像头捕获内容的视图部件
    QCameraViewfinder *viewfinder;
    //是Qt中用于访问和控制摄像头的类。它提供了一个接口，使开发人员能够轻松地在他们的应用程序中集成摄像头功能，包括拍照、录制视频以及实时预览。
    QCamera *camera;
    //当前使用摄像头的信息
    QCameraInfo *currentCameraInfo;
    //用于设置相机的曝光度、
    QCameraExposure *exposure;
    //定时器
    QTimer timer;
signals:

};

#endif // MYQCAMERA_H
